วิธีตรวจสอบ IP Address ของ AWS ELB(ALB)
ปัญหาที่พบ
ต้องการทราบ IP Address ของ ALB เพื่อใช้ในการตรวจสอบปัญหาที่เกิดขึ้น เลยอยากรู้ว่าเราสามารถดู IP Address ของ ALB ได้ที่ไหน
และช่วงเวลาที่ IP Address เปลี่ยน เราสามารถตรวจสอบได้ยังไงบ้าง
สิ่งที่ควรทราบ
IP Address ของ ALB มีการเปลี่ยนแปลงตลอดเวลาด้วยเหตุผลต่างๆเชน การ Maintenance หรือ Scaling ต่างๆ
ซึ่งนั่นหมายความว่าเราไม่ควรใช้โครงสร้างที่ใช้ IP Address ของ ALB ในการเชื่อมต่อเพราะว่า IP Address ของ ALB มีการเปลี่ยนแปลงตลอด[1]
โดยในบทความนี้เราจะมาแนะนำเกี่ยวกับวิธีตรวจสอบ IP Address ของ ALB กันครับ
วิธีตรวจสอบ
วิธีตรวจสอบ IP Address ปัจจุบัน
ในหน้าต่าง Network Interface เราสามารถตรวจสอบ IP Address ของ ALB ได้ด้วยการค้นหาชื่อของ ALB โดยสามารถทำได้โดยดังนี้
- EC2 Console -> Network Interface
- ค้นหา ALB ด้วยชื่อ(ซึ่งในกรณีนี้ผมใช้ชื่อ ALB ว่า tar-test-alb เป็น ALB ที่ตัวเองสร้างขึ้น)
- ตรวจสอบ IP Address ของ Network Interface ที่เราเจอ นั่นคือ IP Address ของ ALB
วิธีตรวจสอบ IP Address ในอดีต
หากเราสร้าง Access log[2] ของ ALB ไว้ เราจะสามารถตรวจสอบ IP Address ในอดีตได้ที่นี่
เมื่อเราเปิดใช้งาน Access log แล้ว Access log จะถูกสร้างขึ้นใน S3 ในรูปแบบต่อไปนี้
[Bucket name]/AWSLogs/[AWS account ID]/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-id_end-time_ip-address_random-string.log.gz
IP Address ที่ถูกบันทึกอยู่ใน Access log ก็คือ IP Address ของ ALB ในช่วงเวลานั้นๆ
จากช่วงเวลาใน Access log ทำให้เราทราบการเปรียบแปลงของ IP Address ได้ในระดับนึง
ตัวอย่างเช่น
s3://albsamplelog/AWSLogs/1234567890/elasticloadbalancing/ap-northeast-1/2021/08/01/
มี Access log ตามด้านล่างนี้
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0200Z_bbb.bbb.bbb.bbb_456fghij.log.gz
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0400Z_ccc.ccc.ccc.ccc_789klmno.log.gz
ซึ่งนี่หมายถึงใน 2021/08/01
- aaa.aaa.aaa.aaa
- bbb.bbb.bbb.bbb
- ccc.ccc.ccc.ccc
ได้มี 3 IP Address นี้ที่ผูกติดกับ ALB ไว้
เมื่อตรวจสอบข้างใน Access log แล้วเห็น
1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz
เป็น log สุดท้ายที่มี aaa.aaa.aaa.aaa นั่นหมายความว่า หลังจาก 2021-08-01T13:00:00.000000Z ไป ALB ได้เลิกใช้ aaa.aaa.aaa.aaa แล้วนั่นเอง ซึ่งทำให้ทราบได้ว่าได้ Scale in จนเหลือแค่ 2 IP Address คือ bbb.bbb.bbb.bbb กับ ccc.ccc.ccc.ccc
ทิ้งท้าย
ตามที่เขียนไว้ใน สิ่งที่ควรทราบ ว่า IP Address ของ ALB มีการเปลี่ยนแปลงตลอดเวลา
หากเราพยายามใช้ IP Address ของ ALB ในการเชื่อมต่อจะเกิดปัญหาตามมา
หากต้องการใช้ Static IP Address ในการเชื่อมต่อแนะนำให้ไปลองดู NLB[3] หรือ NAT Gateway[4] ดูครับ
เอกสารอ้างอิง
[1] Find the IP address used by a load balancer to forward traffic to web servers
[2] Access logs for your Application Load Balancer - Elastic Load Balancing
[3] What is a Network Load Balancer? - Elastic Load Balancing
[4] NAT gateways - Amazon Virtual Private Cloud
เอกสารอ้างอิงอื่นๆ
ทดลองใช้ ALB ของ EC2 เพื่อแบ่งการเชื่อมต่อ | DevelopersIO
ทำความรู้จักกับ ALB, NLB, GLB ของ ELB(Elastic Load Balancing) ในเบื้องต้น | DevelopersIO